package org.posupe.experiencias;

import java.util.Date;

import org.posupe.empresas.Empresa;

public class Experiencia {
	private int codigo ;
	private Date inicio ;
	private Date fim;
	private String descricao;
	private Empresa empresa;
	private String tipoVinculo;
	
	public Experiencia(int codigo,Date inicio,Date fim,String descricao,Empresa empresa,String tipoVinculo){
		super();
		this.codigo = codigo;
		this.inicio = inicio;
		this.fim = fim;
		this.descricao = descricao;
		this.tipoVinculo = tipoVinculo;
		this.empresa = empresa;		
	}
	
	public Experiencia(int codigo){
		this.codigo  = codigo;
	}
	
	public void setCodigo(int codigo){
		this.codigo = codigo;		
	}
	
	public int getCodigo(){
		return codigo;
	}
	
	public void setInicio(Date inicio){
		this.inicio = inicio;	
	}
	
	public Date getInicio(){
		return inicio;
	}
	
	public void setFim(Date fim){
		this.fim = fim;
	}
	
	public Date getFim(){
		return fim;
	}
	
	public void setDescricao(String descricao){
		this.descricao = descricao;
	}
	
	public String getDescricao(){
		return descricao;
	}
	
   public void setEmpresa(Empresa empresa){
		this.empresa = empresa;
	}
	
	public Empresa getEmpresa(){
		return empresa;
	}
	
	public void setTipoVinculo(String tipoVinculo){
		this.tipoVinculo = tipoVinculo;	
	}
	
	public String getTipoVinculo(){
		return tipoVinculo;
	}
	
	public boolean match(Experiencia  experiencia) {
		
		boolean resposta = true;
		if (experiencia.getInicio()!= null && this.inicio.equals(experiencia.getInicio())) {
				resposta = false;
		} else
			if (experiencia.getFim()!= null && this.fim.equals(experiencia.getFim())) {
				resposta = false;
		} else
			
		if((experiencia.descricao != null && this.descricao!=null)){
			if(!this.descricao.contains(experiencia.descricao)){
					resposta = false;
				}
		}else
			
		if (experiencia.getTipoVinculo()!= null && this.tipoVinculo !=null) {
			if(this.tipoVinculo.contains(experiencia.getTipoVinculo())){
				resposta = false;
			}
		} else
			if (experiencia.getEmpresa()!= null && this.empresa.match(experiencia.getEmpresa())) {
				resposta = false;
			}
									
		return resposta;
	}
	
	public String toString() {
		return this.codigo+" - "+this.descricao+" - "+this.inicio+" - "+this.fim+" - "+this.empresa+" - "+this.tipoVinculo;
	}
}
